Aspose.Word从word文档里提取图片

作者:控件中国网   出处:控件中国网   2014-11-05 19:07:39   阅读:213

Aspose.Word是一款功能强大的word控件,可以对word文件进行创建、编辑、读取、修改、转换,合并,插入等操作,并且不需要安装任何第三方插件,下面我们简单介绍,Aspose.Word如果从word文件中提取图片并保存。

具体查看下面的代码:
C#

public void ExtractImagesToFiles()
{
    Document doc = new Document(MyDir + "Image.SampleImages.doc");

    NodeCollection shapes = doc.GetChildNodes(NodeType.Shape, true);
    int imageIndex = 0;           
    foreach (Shape shape in shapes)
    {
        if (shape.HasImage)
        {
            string imageFileName = string.Format(
                "Image.ExportImages.{0} Out{1}", imageIndex, FileFormatUtil.ImageTypeToExtension(shape.ImageData.ImageType));
            shape.ImageData.Save(MyDir + imageFileName);
            imageIndex++;
        }
    }

    // Newer Microsoft Word documents (such as DOCX) may contain a different type of image container called DrawingML.
    // Repeat the process to extract these if they are present in the loaded document.
    NodeCollection dmlShapes = doc.GetChildNodes(NodeType.DrawingML, true);
    foreach (DrawingML dml in dmlShapes)
    {
        if (dml.HasImage)
        {
            string imageFileName = string.Format(
                "Image.ExportImages.{0} Out{1}", imageIndex, FileFormatUtil.ImageTypeToExtension(dml.ImageData.ImageType));
            dml.ImageData.Save(MyDir + imageFileName);
            imageIndex++;
        }
    }
}
 

Visual Basic


Public Sub ExtractImagesToFiles()
    Dim doc As New Document(MyDir & "Image.SampleImages.doc")

    Dim shapes As NodeCollection = doc.GetChildNodes(NodeType.Shape, True)
    Dim imageIndex As Integer = 0
    For Each shape As Shape In shapes
        If shape.HasImage Then
            Dim imageFileName As String = String.Format("Image.ExportImages.{0} Out{1}", imageIndex, FileFormatUtil.ImageTypeToExtension(shape.ImageData.ImageType))
            shape.ImageData.Save(MyDir & imageFileName)
            imageIndex += 1
        End If
    Next shape

    ' Newer Microsoft Word documents (such as DOCX) may contain a different type of image container called DrawingML.
    ' Repeat the process to extract these if they are present in the loaded document.
    Dim dmlShapes As NodeCollection = doc.GetChildNodes(NodeType.DrawingML, True)
    For Each dml As DrawingML In dmlShapes
        If dml.HasImage Then
            Dim imageFileName As String = String.Format("Image.ExportImages.{0} Out{1}", imageIndex, FileFormatUtil.ImageTypeToExtension(dml.ImageData.ImageType))
            dml.ImageData.Save(MyDir & imageFileName)
            imageIndex += 1
        End If
    Next dml
End Sub

Copyright© 2006-2015 ComponentCN.com all rights reserved.重庆磐岩科技有限公司(控件中国网) 版权所有 渝ICP备12000264号 法律顾问:元炳律师事务所
客服软件
live chat